function ajax(obj) {
  var default1 = {
    url: "", //请求地址
    type: "get", //请求方式
    data: "", //请求参数
    async: "true", //是否异步
    dataType: "string", //返回数据的数据格式
    success: function () {}, //成功的回调函数
    error: function () {}, //失败的回调函数
  };
  //使用传入的参数覆盖默认参数
  for (var attr in obj) {
    default1[attr] = obj[attr];
  }

  //判断地址是否有数据
  if (!default1.url) {
    throw new Error("url地址不能为空");
  }
  //创建ajax对象
  var xhr = new XMLHttpRequest();
  //data是否有参数
  if (default1.data) {
    //判断请求方式
    if (default1.type.toUpperCase() == "GET") {
      //配置请求信息
      xhr.open("get", default1.url + "?" + default1.data);
      //发送请求
      xhr.send();
    } else {
      //配置请求信息
      xhr.open("post", default1.url);
      //设置请求头
      xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded");
      //发送请求
      xhr.send(default1.data);
    }
  } else {
    //配置请求信息
    xhr.open(default1.type, default1.url);
    //发送请求
    xhr.send();
  }
  //监听ajax状态
  xhr.onreadystatechange = function () {
    //判断ajax状态是否等于4
    if (xhr.readyState == 4) {
      //判断http状态是否成功
      if (xhr.status == 200) {
        //调用成功的回调函数
        default1.success(xhr.responseText);
      } else {
        //调用失败的回调函数
        default1.error(xhr.responseText);
      }
    }
  };
}

function PromiseAjax(obj) {
  return new Promise(function (resolve, reject) {
    var default1 = {
      url: "", //请求地址
      type: "get", //请求方式
      data: "", //请求参数
      async: "true", //是否异步
      dataType: "string", //返回数据的数据格式
      // success:function(){},//成功的回调函数
      // error:function(){}//失败的回调函数
    };
    //使用传入的参数覆盖默认参数
    for (var attr in obj) {
      default1[attr] = obj[attr];
    }

    //判断地址是否有数据
    if (!default1.url) {
      throw new Error("url地址不能为空");
    }
    //创建ajax对象
    var xhr = new XMLHttpRequest();
    //data是否有参数
    if (default1.data) {
      //判断请求方式
      if (default1.type.toUpperCase() == "GET") {
        //配置请求信息
        xhr.open("get", default1.url + "?" + default1.data);
        //发送请求
        xhr.send();
      } else {
        //配置请求信息
        xhr.open("post", default1.url);
        //设置请求头
        xhr.setRequestHeader(
          "content-type",
          "application/x-www-form-urlencoded"
        );
        //发送请求
        xhr.send(default1.data);
      }
    } else {
      //配置请求信息
      xhr.open(default1.type, default1.url);
      //发送请求
      xhr.send();
    }
    //监听ajax状态
    xhr.onreadystatechange = function () {
      //判断ajax状态是否等于4
      if (xhr.readyState == 4) {
        //判断http状态是否成功
        if (xhr.status == 200) {
          //调用成功的回调函数
          /*  default1.success(xhr.responseText) */
          resolve(xhr.responseText);
        } else {
          //调用失败的回调函数
          // default1.error(xhr.responseText)
          reject(xhr.status);
        }
      }
    };
  });
}
